home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 4925 / 4925.xpi / install.js < prev    next >
Text File  |  2010-02-08  |  4KB  |  100 lines

  1. const APP_DISPLAY_NAME = "autopager";
  2. const APP_NAME = "autopager";
  3. const APP_PACKAGE = "/informaction/autopager";
  4. const APP_VERSION = "0.6.0.13";
  5.  
  6. const APP_PREFS_FILE="defaults/preferences/autopagerdef.js";
  7. const APP_XPCOM_SERVICE="components/AutopagerCOMP.js";
  8. const APP_JAR_FILE = "autopager.jar";
  9. const APP_CONTENT_FOLDER = "content/";
  10. const APP_LOCALES = [
  11.   "zh-CN", "zh-TW","nl-NL","en-US","fr-FR","de-DE","it-IT","ja-JP","pt-BR","tr-TR","hu-HU","he-IL","vi-VN","pl-PL","ro","es"
  12.   ];
  13.   //"it-IT","ja-JP",
  14.  
  15. const APP_SUCCESS_MESSAGE = APP_DISPLAY_NAME+" should now be available on the statusbar when you restart Mozilla.";
  16.  
  17. const INST_TO_PROFILE = "Do you wish to install "+APP_DISPLAY_NAME+" to your profile?\nThis will mean it does not need reinstalling when you update Mozilla.\n(Click Cancel if you want "+APP_DISPLAY_NAME+" installing to the Mozilla directory.)";
  18.  
  19.  
  20. var instToProfile = true;
  21.  
  22. myPerformInstall(false);
  23.  
  24. function myPerformInstall(secondTry) {
  25.   
  26.   var err;
  27.   initInstall(APP_NAME, APP_PACKAGE, APP_VERSION);
  28.   
  29.   if(!secondTry) {  
  30.     // profile installs only work since 2003-03-06
  31.     instToProfile = (buildID>2003030600 && confirm(INST_TO_PROFILE));
  32.   }
  33.   
  34.   var chromef = instToProfile ? getFolder("Profile", "extensions/autopager@mozilla.org/chrome") : getFolder("chrome");
  35.   err = addFile(APP_PACKAGE, APP_VERSION, "chrome/" + APP_JAR_FILE, chromef, null,true);
  36.   if(APP_PREFS_FILE && (err == SUCCESS) ) {
  37.     const prefDirs=[
  38.       getFolder("Profile","pref"),
  39.       getFolder(getFolder(getFolder("Program"),"defaults"),"pref")
  40.       ];
  41.     for(var j=prefDirs.length; j-->0;) {
  42.       var prefDir=prefDirs[j];
  43.       
  44.       err = addFile(APP_PACKAGE, APP_VERSION,  APP_PREFS_FILE, prefDir, null, true);
  45.       logComment("Adding "+APP_PREFS_FILE+" in "+prefDir+": exit code = "+err);
  46.     }
  47.   }
  48.       if(APP_XPCOM_SERVICE) {
  49.       var componentsDir = getFolder("Components");
  50.       addFile(APP_PACKAGE,APP_VERSION, APP_XPCOM_SERVICE, componentsDir, null, true);
  51.       addFile(APP_NAME, "components/.autoreg", getFolder("Program"), "");
  52.     }
  53.     
  54.   if(err == SUCCESS) {
  55.     var jar =  getFolder(chromef, APP_JAR_FILE);
  56.     
  57.     const chromeFlag=instToProfile?PROFILE_CHROME:DELAYED_CHROME;
  58.   
  59.     registerChrome(CONTENT | chromeFlag, jar, APP_CONTENT_FOLDER);//'jar, APP_CONTENT_FOLDER);
  60.     
  61.     var localesCount=APP_LOCALES.length;
  62.     if(localesCount>0) {
  63.       registerChrome(LOCALE | chromeFlag,  jar,"locale/"+APP_LOCALES[--localesCount]+"/");
  64.       while(localesCount-- >0) {
  65.         registerChrome(LOCALE  | chromeFlag,  jar,"locale/"+APP_LOCALES[localesCount]+"/");
  66.       }
  67.     }
  68.     performInstall();
  69.     initInstall(APP_NAME, APP_PACKAGE, APP_VERSION);
  70.         
  71.     registerChrome(SKIN | chromeFlag, jar ,"skin/");
  72.  
  73.     err = performInstall();
  74.     if(err == -239 && !secondTry) {
  75.       alert("Chrome registration problem, maybe transient, you can try restart to see it works or not.");
  76.       cancelInstall(err);
  77.       myPerformInstall(true);
  78.       return;
  79.     }
  80.     if(err == SUCCESS || err == 999) {
  81.       alert(APP_DISPLAY_NAME+" "+APP_VERSION+" has been succesfully installed.\n"+APP_SUCCESS_MESSAGE);
  82.     } else {
  83.       var msg = "Install failed!!! Error code:" + err;
  84.  
  85.       if(err == -239) {
  86.         msg += "\nThis specific error is usually transient:"
  87.           +"\nif you retry to install again, it will probably go away."
  88.       }
  89.  
  90.       alert(msg);
  91.       //cancelInstall(err);
  92.     }
  93.   } else {
  94.     alert("Failed to create " +APP_JAR_FILE +"\n"
  95.       +"You probably don't have appropriate permissions \n"
  96.       +"(write access to your profile or chrome directory). \n"
  97.       +"_____________________________\nError code:" + err);
  98.     cancelInstall(err);
  99.   }
  100. }